Nginx - Use Perl Script
2013/07/08 |
Configure Nginx to execute Perl script.
This example shows to use fcgiwrap + spawn-fcgi. |
|
[1] | Install some packages first. |
[root@www ~]# yum --enablerepo=epel -y install spawn-fcgi fcgi-devel # install from EPEL [root@www ~]# yum -y groupinstall "Development Tools" |
[2] | Install fcgiwrap |
[root@www ~]# wget http://github.com/gnosek/fcgiwrap/tarball/master -O fcgiwrap.tar.gz [root@www ~]# tar zxvf fcgiwrap.tar.gz [root@www ~]# cd gnosek-fcgiwrap-* [root@www gnosek-fcgiwrap-4b2151e]# autoreconf -i [root@www gnosek-fcgiwrap-4b2151e]# ./configure [root@www gnosek-fcgiwrap-4b2151e]# make [root@www gnosek-fcgiwrap-4b2151e]# make install install -d -m 755 /usr/local/sbin install -m 755 fcgiwrap /usr/local/sbin install -d -m 755 /usr/local/man/man8 install -m 644 fcgiwrap.8 /usr/local/man/man8 |
[3] | Configure Nginx |
[root@www ~]#
vi /etc/sysconfig/spawn-fcgi # add at the last
OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 9001 -P /var/run/spawn-fcgi.pid -- /usr/local/sbin/fcgiwrap"
[root@www ~]#
vi /etc/nginx/conf.d/default.conf # add follows in the "server" section location ~ \.pl|cgi$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } /etc/rc.d/init.d/nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ] [root@www ~]# /etc/rc.d/init.d/spawn-fcgi start Starting spawn-fcgi: [ OK ] [root@www ~]# chkconfig spawn-fcgi on
|
[4] | Create a CGI test script and make sure CGI works or not. It's Ok if following page is shown normally. |
[root@www ~]#
vi /usr/share/nginx/html/index.cgi #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html>\n<body>\n"; print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n"; print "CGI Test Page"; print "\n</div>\n"; print "</body>\n</html>\n"; chmod 705 /usr/share/nginx/html/index.cgi |